<?php
class Enderecos {
  private $id_endereco;
  private $logradouro;
  private $numero;
  private $cidade;
  private $estado;
  private $bairro;
  private $complemento;
  private $cep;
  private $id_cliente;
  
  public function __construct($sFiltro = "", $sOrdem = "id_endereco") {
    global $oDB;
    $sSQL = "SELECT id_endereco, logradouro, numero, cidade, estado, bairro, complemento, cep, id_cliente FROM enderecos";
    if ($sFiltro) {
      $sSQL .= " WHERE ($sFiltro)";
    }
    if ($sOrdem) {
      $sSQL .= " ORDER BY $sOrdem";
    }
    if (!empty($sFiltro)) {
      $oRes = $oDB->Execute($sSQL);
      if ($oRes == false) {
        trigger_error($oDB->ErrorMsg());
      } else {
        $this->id_endereco = $oRes->fields['id_endereco'];
        $this->logradouro = $oRes->fields['logradouro'];
        $this->numero = $oRes->fields['numero'];
        $this->cidade = $oRes->fields['cidade'];
        $this->estado = $oRes->fields['estado'];
        $this->bairro = $oRes->fields['bairro'];
        $this->complemento = $oRes->fields['complemento'];
        $this->cep = $oRes->fields['cep'];
        $this->id_cliente = $oRes->fields['id_cliente'];
      }
    }
  }
  
  public function getId_endereco() {
    return $this->id_endereco;
  }
  public function setId_endereco($valor) {
    $this->id_endereco = $valor;
  }
  
  public function getLogradouro() {
    return $this->logradouro;
  }
  public function setLogradouro($valor) {
    $this->logradouro = $valor;
  }
  
  public function getNumero() {
    return $this->numero;
  }
  public function setNumero($valor) {
    $this->numero = $valor;
  }
  
  public function getCidade() {
    return $this->cidade;
  }
  public function setCidade($valor) {
    $this->cidade = $valor;
  }
  
  public function getEstado() {
    return $this->estado;
  }
  public function setEstado($valor) {
    $this->estado = $valor;
  }
  
  public function getBairro() {
    return $this->bairro;
  }
  public function setBairro($valor) {
    $this->bairro = $valor;
  }
  
  public function getComplemento() {
    return $this->complemento;
  }
  public function setComplemento($valor) {
    $this->complemento = $valor;
  }
  
  public function getCep() {
    return $this->cep;
  }
  public function setCep($valor) {
    $this->cep = str_replace('-', '', $valor);
  }
  
  public function getId_cliente() {
    return $this->id_cliente;
  }
  public function setId_cliente($valor) {
    $this->id_cliente = $valor;
  }
  
  public function atualizar() {
    global $oDB;
    $campos = array(
      'logradouro' => $this->logradouro,
      'numero' => $this->numero,
      'cidade' => $this->cidade,
      'estado' => $this->estado,
      'bairro' => $this->bairro,
      'complemento' => $this->complemento,
      'cep' => $this->cep,
      'id_cliente' => $this->id_cliente,
    );
    
    if ($this->id_cliente > 0) {
      $oDB->AutoExecute('enderecos', $campos, 'UPDATE', 'id_cliente = '.intval($this->id_cliente));
    } else {
      $sSQL = 'SELECT MAX(id_cliente) as id_cliente FROM clientes';
      $oRes = $oDB->execute($sSQL);

      $campos['id_cliente'] = $oRes->fields['id_cliente'];
      
      $oDB->AutoExecute('enderecos', $campos, 'INSERT');
    }
  }
  public function excluir($aIds) {
    global $oDB;
    $sIds = implode(',', $aIds);
    $sSQL = 'DELETE FROM enderecos WHERE id_endereco IN ('. $sIds .')';
    $oRes = $oDB->execute($sSQL);
    if ($oRes != false) {
      return true;
    }
  }
  public static function listar($filtro = "", $sOrdem = "id_endereco") {
    global $oDB;
    $lista = array();
    $sSQL = "SELECT id_endereco, logradouro, numero, cidade, estado, bairro, complemento, cep, id_cliente FROM enderecos";
    if ($filtro) {
      $sSQL .= " WHERE ($filtro)";
    }
    if ($sOrdem) {
      $sSQL .= " ORDER BY $sOrdem";
    }
    $oRes = $oDB->Execute($sSQL);
    if ($oRes == false) {
      trigger_error($oDB->ErrorMsg());
    } else {
      while (!$oRes->EOF) {
        $linha = new self();
        $linha->id_endereco = $oRes->fields['id_endereco'];
        $linha->logradouro = $oRes->fields['logradouro'];
        $linha->numero = $oRes->fields['numero'];
        $linha->cidade = $oRes->fields['cidade'];
        $linha->estado = $oRes->fields['estado'];
        $linha->bairro = $oRes->fields['bairro'];
        $linha->complemento = $oRes->fields['complemento'];
        $linha->cep = $oRes->fields['cep'];
        $linha->id_cliente = $oRes->fields['id_cliente'];
        $lista[] = $linha;
        
        $oRes->MoveNext();
      }
    }
    return $lista;
  }
  
}
?>
